package com.dnndo.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.dnndo.common.annotation.Excel;
import com.dnndo.common.config.CommaSeparatedListTypeHandler;
import com.dnndo.system.domain.vo.MenuMetaAuths;
import lombok.Data;

import java.util.List;

@Data
public class MenuMeta {
    /**
     * 显示名称
     */
    @Excel(name = "显示名称")
    private String title;

    /**
     * 路由icon
     */
    @Excel(name = "路由icon")
    private String icon;

    /**
     * 路由选中icon
     */
    @Excel(name = "路由选中icon")
    private String activeIcon;

    /**
     * 是否默认展开
     */
    @Excel(name = "是否默认展开")
    private Boolean defaultOpened;

    /**
     * 始终展开
     */
    @Excel(name = "始终展开")
    private Boolean alwaysOpened;

    /**
     * 鉴权标识
     */
    @Excel(name = "鉴权标识")
    @TableField(typeHandler = CommaSeparatedListTypeHandler.class)
    private List<String> auth;

    /**
     * 权限池
     */
    @Excel(name = "权限池")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<MenuMetaAuths> auths;

    /**
     * 在导航显示
     */
    @Excel(name = "在导航显示")
    private Boolean menu;

    /**
     * 在面包屑显示
     */
    @Excel(name = "在面包屑显示")
    private Boolean breadcrumb;

    /**
     * 高亮导航
     */
    @Excel(name = "高亮导航")
    private String activeMenu;

    /**
     * 页面缓存
     */
    @Excel(name = "页面缓存")
    @TableField(typeHandler = CommaSeparatedListTypeHandler.class)
    private List<String> cache;

    /**
     * 是否对该页面清除缓存
     */
    @Excel(name = "是否对该页面清除缓存")
    @TableField(typeHandler = CommaSeparatedListTypeHandler.class)
    private List<String> noCache;

    /**
     * 徽标
     */
    @Excel(name = "徽标")
    private String badge;

    /**
     * 徽标变体
     */
    @Excel(name = "徽标变体")
    private String badgeVariant;

    /**
     * 是否新窗口打开
     */
    @Excel(name = "是否新窗口打开")
    private Boolean newWindow;

    /**
     * 访问外链
     */
    @Excel(name = "访问外链")
    private String link;

    /**
     * 内嵌网页
     */
    @Excel(name = "内嵌网页")
    private String iframe;

    /**
     * 底部版权
     */
    @Excel(name = "底部版权")
    private Boolean copyright;
}
